์์ฑ: 2026-03-04 04:03:38์์ : 2026-03-04 04:03:38
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ์ฌ์ฉ๋ฒ ๋ฐ ์๋๋ฆฌ์ค๋ณ ์์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ข ๋ฅ๋ฅผ ์๋ ๊ฒ๋ณด๋ค ์ค์ํ ๊ฒ์ **"์ด๋ป๊ฒ ํจ์จ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋๊ฐ(CRUD)"**์ ๋๋ค. ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ SQL๊ณผ NoSQL์ ํต์ฌ ์ฌ์ฉ๋ฒ์ ์ค๋ฌด ์๋๋ฆฌ์ค์ ํจ๊ป ์ ๋ฆฌํฉ๋๋ค.
1. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค (SQL - MySQL/PostgreSQL)
์๋๋ฆฌ์ค: ์ผํ๋ชฐ ์ฃผ๋ฌธ ๋ฐ ํ์ ๊ด๋ฆฌ
โ ๋ฐ์ดํฐ ์์ฑ (INSERT)
INSERT INTO users (name, email) VALUES ('ํ๊ธธ๋', '[email protected]');โก ๋ณต์กํ ์กฐ๊ฑด ์กฐํ (SELECT + JOIN)
SELECT u.name, o.order_date, o.total_price
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE u.name = 'ํ๊ธธ๋'
ORDER BY o.order_date DESC;โข ๋ฐ์ดํฐ ์์ (UPDATE)
UPDATE users SET email = '[email protected]' WHERE id = 1;โฃ ๋ฐ์ดํฐ ์ญ์ (DELETE) - ์ฃผ์์ฌํญ ํฌํจ
- Hard Delete (๋ฌผ๋ฆฌ ์ญ์ ): ๋ฐ์ดํฐ๋ฅผ DB์์ ์์ ํ ์ง์๋๋ค.
DELETE FROM users WHERE id = 1; -- WHERE์ ์ด ์์ผ๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋๋ ์ฃผ์! - Soft Delete (๋
ผ๋ฆฌ ์ญ์ - ์ค๋ฌด ๊ถ์ฅ): ์ค์ ๋ก ์ง์ฐ์ง ์๊ณ '์ญ์ ์ฌ๋ถ' ์ํ๋ง ๋ณ๊ฒฝํฉ๋๋ค. ๋ฐ์ดํฐ ๋ณต๊ตฌ๊ฐ ๊ฐ๋ฅํ๊ณ ํต๊ณ ๋ถ์์ ์ ๋ฆฌํฉ๋๋ค.
UPDATE users SET is_deleted = true, deleted_at = NOW() WHERE id = 1;
2. ๋ฌธ์ ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค (NoSQL - MongoDB)
์๋๋ฆฌ์ค: ๋ธ๋ก๊ทธ ํฌ์คํธ ๊ด๋ฆฌ
โ ๋ฐ์ดํฐ ์์ฑ ๋ฐ ์์
db.posts.insertOne({ title: "์๋
, ๋ชฝ๊ณ DB!", content: "์ ์ฐํ ๊ตฌ์กฐ" });
db.posts.updateOne({ title: "์๋
, ๋ชฝ๊ณ DB!" }, { $set: { content: "์์ ๋ ๋ด์ฉ" } });โก ๋ฐ์ดํฐ ์ญ์ (Delete)
- ๋จ๊ฑด ์ญ์ : ์กฐ๊ฑด์ ๋ง๋ ์ฒซ ๋ฒ์งธ ๋ฌธ์๋ง ์ญ์ ํฉ๋๋ค.
db.posts.deleteOne({ _id: ObjectId("60f...") }); - ๋ค๊ฑด ์ญ์ : ์กฐ๊ฑด์ ๋ง๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ญ์ ํฉ๋๋ค.
db.posts.deleteMany({ status: "draft" }); // ์ด์ ์ํ์ธ ๋ชจ๋ ๊ธ ์ญ์
3. ํค-๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค (NoSQL - Redis)
์๋๋ฆฌ์ค: ์ธ์ ๋ฐ ์บ์ ๊ด๋ฆฌ
โ ๊ฐ ์ ์ฅ ๋ฐ ์ญ์
- ์ญ์ (DEL): ํค๋ฅผ ์ฆ์ ์ญ์ ํฉ๋๋ค.
DEL session:user:1 - ์๋ ์ญ์ (Expire): ํน์ ์๊ฐ ๋ค์ ์๋์ผ๋ก ์ฌ๋ผ์ง๊ฒ ํฉ๋๋ค.
EXPIRE session:user:1 3600 # 1์๊ฐ ๋ค ์ญ์
4. ์ญ์ ์์ ์ ์ค๋ฌด ๊ฐ์ด๋ (Best Practice)
- WHERE์ ํ์ธ ๋ ํ์ธ:
UPDATE๋DELETE๋ฅผ ์คํํ๊ธฐ ์ ์๋ ๋ฐ๋์ ๊ฐ์ ์กฐ๊ฑด์ผ๋กSELECT๋ฅผ ๋จผ์ ํด๋ณด์ธ์. ๋ด๊ฐ ์ง์ฐ๋ ค๋ ๋ฐ์ดํฐ๊ฐ ๋ง๋์ง ํ์ธํ๋ ์ต๊ด์ด ๋ํ ์ฌ๊ณ ๋ฅผ ๋ง์ต๋๋ค. - ๊ฐ๊ธ์ Soft Delete ์ฌ์ฉ: ํ์ ํํด๋ ์ฃผ๋ฌธ ์ทจ์ ๊ฐ์ ๋ฐ์ดํฐ๋ ๋์ค์ ๋ถ์ ํด๊ฒฐ์ด๋ ๋ฐ์ดํฐ ๋ถ์์ ์ํด
is_deleted๊ฐ์ ์ปฌ๋ผ์ ํ์ฉํด ๋ณด๊ดํ๋ ๊ฒ์ด ์ข์ต๋๋ค. - ๋ฐฑ์ ๋ฐ ๋ก๊ทธ: ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ง์ธ ๋๋ ์ญ์ ์ ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๊ฑฐ๋ ๋ฐฐํฌ ์ ๋ฐฑ์ ๋ณธ์ด ์๋์ง ํ์ธํ์ธ์.
๊ฒฐ๋ก
์์ฑ(C), ์กฐํ(R), ์์ (U)๋ ์ค์ํ์ง๋ง, ์ญ์ (D)๋ ๊ฐ์ฅ ์ํํ๊ณ ์ ์คํด์ผ ํ๋ ์์ ์ ๋๋ค. ๊ฐ DB์ ํน์ฑ์ ๋ง๋ ์ญ์ ์ ๋ต์ ์ธ์ ๋ฐ์ดํฐ์ ์์ ์ฑ์ ์งํค์ธ์!